{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Tutorial 11b - Ray Path Failure Classification Model\n",
    "\n",
    "### Introduction\n",
    "In this notebook, we will build a classification model using logistic regression to predict whether a given ray will trace successfully through a Cooke triplet lens. Successful in this context means the ray traces from object space and onto the image surface without experiencing total internal reflection or missing a lens surface entirely.\n",
    "\n",
    "Specifically, this notebook will:\n",
    "\n",
    "1. Model a Cooke triplet lens system in Optiland.\n",
    "2. Generate random rays and trace them through the system. Inputs are reported as the initial ray properties and the output is a flag indicating if raytracing was successful.\n",
    "3. Train a logistic regression model to predict whether a ray will successfully trace through the lens system.\n",
    "4. Assess the performance of the logistic regression model.\n",
    "5. Visualize the results using various plots."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "from imblearn.over_sampling import SMOTE\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.metrics import (\n",
    "    ConfusionMatrixDisplay,\n",
    "    accuracy_score,\n",
    "    classification_report,\n",
    "    confusion_matrix,\n",
    "    f1_score,\n",
    "    precision_recall_curve,\n",
    "    roc_auc_score,\n",
    "    roc_curve,\n",
    ")\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "from optiland.rays import RealRays\n",
    "from optiland.samples.objectives import CookeTriplet"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 1: Setting Up the Lens System with Optiland\n",
    "\n",
    "We will model a Cooke triplet lens system in Optiland. Below is the code to define and view the lens system."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "lens = CookeTriplet()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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g8HxJtR3XMMu3S5odTtQ2lwKf5U/7o5diLyEe1i3SERERLctBkcn7K38FP/v4oc42l23+PWo2Vg+5THcGXEn6xaJiIjotsfg6ITi6kMwWoxYk/k8FsR+g3WLRERENKYwODphdebzkEll7m4GERERkVtI3d2A0YShkYiIiMYyBkciIiIicgiDIxERERE5hMGRiIiIiBzC4EhEREREDmFwJCIiIiKHMDgSERERkUMYHImIiIjIIQyOREREROQQBkciIiIicgiDIxERERE5xGXBcePGjbjzzjuh0Wjg7+8/4DkSiaTfbdu2ba5qEhERERHdArmr3thkMmHJkiXIycnBb3/720HP++CDD7Bo0SL748FCJhERERG5l8uC48svvwwA2LJly5Dn+fv7Izw83FXNICIiIqJh4vYaxxUrViA4OBhZWVn43e9+ByHEkOcbjUbo9fo+NyIiIiJyPZeNODpiw4YNmDdvHjQaDXbv3o3HHnsMbW1teOKJJwZ9TX5+vn00k4iIiIhGjlMjjqtXrx7wgpbrb1988YXD77d27VrMmjUL6enpeO655/CLX/wCb7zxxpCvWbNmDVpaWuy3yspKZ/4EIiIiIrpJTo04rlq1CsuWLRvynMTExJtuTHZ2Nl555RUYjUaoVKoBz1GpVIMeIyIiIiLXcSo4hoSEICQkxFVtQUlJCQICAhgMiYiIiDyQy2ocKyoq0NjYiIqKClgsFpSUlAAAkpKS4OPjg48++gi1tbWYOXMm1Go19uzZg1dffRXPPPOMq5pERERERLfAZcFx3bp12Lp1q/1xeno6AKCwsBBz5syBQqHAu+++i5UrV0IIgaSkJLz11lt4+OGHXdUkIiIiIroFLguOW7ZsGXINx0WLFvVZ+JuIiIiIPJvb13EkIiIiotGBwZGIiIiIHMLgSEREREQOYXAkIiIiIocwOBIRERGRQxgciYiIiMghDI5ERERE5BAGRyIiIiJyCIMjERERETmEwZGIiIiIHMLgSEREREQOYXAkIiIiIocwOBIRERGRQxgciYiIiMghDI5ERERE5BAGRyIiIiJyCIMjERERETmEwZGIiIiIHCJ3dwOIiIiIqJdCocDTq56x3/ckDI5EREREHkQikUCpVLq7GQPiVDUREREROYTBkYiIiIgcwuBIRERERA5hcCQiIiIihzA4EhEREZFDGByJiIiIyCEM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",
      "text/plain": [
       "<Figure size 1000x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "lens.draw()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 2: Data generation\n",
    "\n",
    "In this step, we generate random rays and trace them through the Cooke triplet lens system. The inputs are the initial ray properties, and the output is a flag indicating if ray tracing was successful. The generated data will be used to train the logistic regression model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_random_rays(num_rays, seed=42):\n",
    "    \"\"\"Generate random rays.\"\"\"\n",
    "    np.random.seed(seed)\n",
    "\n",
    "    # get random positions\n",
    "    theta = np.random.uniform(0, 2 * np.pi, size=num_rays)\n",
    "    r = 15.0 * np.sqrt(np.random.uniform(0, 1, size=num_rays))\n",
    "    x = r * np.cos(theta)\n",
    "    y = r * np.sin(theta)\n",
    "    z = np.full(num_rays, -10.0)  # starting ray point in object space\n",
    "\n",
    "    # get random directions\n",
    "    v = np.random.randn(3, num_rays)\n",
    "    v /= np.linalg.norm(v, axis=0)\n",
    "    v[2] = np.abs(v[2])  # Ensure positive z-direction\n",
    "    L, M, N = v\n",
    "\n",
    "    # define wavelength and intensity as constants\n",
    "    intensity = np.ones(num_rays)\n",
    "    wavelength = np.full(num_rays, 0.5876)\n",
    "\n",
    "    return RealRays(x, y, z, L, M, N, intensity, wavelength)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def trace_random_rays(num_rays):\n",
    "    # get random rays\n",
    "    rays_in = get_random_rays(num_rays)\n",
    "\n",
    "    # build input array\n",
    "    inputs = np.column_stack([rays_in.x, rays_in.y, rays_in.L, rays_in.M, rays_in.N])\n",
    "\n",
    "    # trace rays and return\n",
    "    with warnings.catch_warnings():\n",
    "        warnings.simplefilter(\"ignore\")\n",
    "        rays_out = lens.surface_group.trace(rays_in)\n",
    "\n",
    "    # build output array - simply checks if ray reached the image plane\n",
    "    outputs = np.isfinite(rays_out.x)\n",
    "\n",
    "    # merge into pandas dataframe\n",
    "    data = pd.DataFrame(inputs, columns=[\"x\", \"y\", \"L\", \"M\", \"N\"])\n",
    "    data[\"success\"] = outputs.astype(int)\n",
    "\n",
    "    return data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We choose to trace 3 million rays through our system. This is only limited by available computational resources."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "num_rays = 3_000_000\n",
    "\n",
    "data = trace_random_rays(num_rays)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 3: Exploratory Data Analysis (EDA)\n",
    "\n",
    "In this step, we will perform exploratory data analysis (EDA) to understand the characteristics of the dataset. EDA helps in identifying patterns, detecting anomalies, and checking assumptions with the help of summary statistics and graphical representations.\n",
    "\n",
    "We will cover the following aspects in our EDA:\n",
    "\n",
    "1. **Data Overview**: Display the first few rows of the dataset to get a sense of the data structure.\n",
    "2. **Class Distribution**: Check the distribution of the target variable to understand the class imbalance.\n",
    "3. **Summary Statistics**: Generate summary statistics to understand the dataset’s distribution.\n",
    "4. **Correlation Analysis**: Calculate and visualize the correlation matrix to identify relationships between features.\n",
    "5. **Visualizations**: Create various plots to visualize the data distribution and relationships between features.\n",
    "\n",
    "Let's start with displaying the first few rows of the dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>x</th>\n",
       "      <th>y</th>\n",
       "      <th>L</th>\n",
       "      <th>M</th>\n",
       "      <th>N</th>\n",
       "      <th>success</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-9.126309</td>\n",
       "      <td>9.179203</td>\n",
       "      <td>0.032585</td>\n",
       "      <td>0.457168</td>\n",
       "      <td>0.888783</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7.150769</td>\n",
       "      <td>-2.287995</td>\n",
       "      <td>-0.494729</td>\n",
       "      <td>-0.003432</td>\n",
       "      <td>0.869040</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.401754</td>\n",
       "      <td>-12.337153</td>\n",
       "      <td>0.546859</td>\n",
       "      <td>-0.833323</td>\n",
       "      <td>0.080731</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-2.599085</td>\n",
       "      <td>-1.855077</td>\n",
       "      <td>0.295361</td>\n",
       "      <td>0.749453</td>\n",
       "      <td>0.592522</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>7.484345</td>\n",
       "      <td>11.165942</td>\n",
       "      <td>-0.092561</td>\n",
       "      <td>0.310504</td>\n",
       "      <td>0.946055</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          x          y         L         M         N  success\n",
       "0 -9.126309   9.179203  0.032585  0.457168  0.888783        0\n",
       "1  7.150769  -2.287995 -0.494729 -0.003432  0.869040        0\n",
       "2 -1.401754 -12.337153  0.546859 -0.833323  0.080731        0\n",
       "3 -2.599085  -1.855077  0.295361  0.749453  0.592522        0\n",
       "4  7.484345  11.165942 -0.092561  0.310504  0.946055        0"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We view the distribution of the success column. We see that the dataset is significantly imbalanced i.e., 96% of rays result in a failure. We will address this imbalance later on during model training."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Distribution:\n",
      " success\n",
      "0    0.960771\n",
      "1    0.039229\n",
      "Name: proportion, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "print(\"Class Distribution:\\n\", data[\"success\"].value_counts(normalize=True))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can view the distribution of the data columns using the `describe` method."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>x</th>\n",
       "      <th>y</th>\n",
       "      <th>L</th>\n",
       "      <th>M</th>\n",
       "      <th>N</th>\n",
       "      <th>success</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>3.000000e+06</td>\n",
       "      <td>3.000000e+06</td>\n",
       "      <td>3.000000e+06</td>\n",
       "      <td>3.000000e+06</td>\n",
       "      <td>3.000000e+06</td>\n",
       "      <td>3.000000e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>-3.901070e-03</td>\n",
       "      <td>-1.086166e-03</td>\n",
       "      <td>-3.628822e-05</td>\n",
       "      <td>1.074950e-04</td>\n",
       "      <td>4.999451e-01</td>\n",
       "      <td>3.922933e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>7.498685e+00</td>\n",
       "      <td>7.501070e+00</td>\n",
       "      <td>5.774254e-01</td>\n",
       "      <td>5.773347e-01</td>\n",
       "      <td>2.886514e-01</td>\n",
       "      <td>1.941402e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-1.499983e+01</td>\n",
       "      <td>-1.499879e+01</td>\n",
       "      <td>-9.999989e-01</td>\n",
       "      <td>-9.999988e-01</td>\n",
       "      <td>1.148959e-07</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-6.058138e+00</td>\n",
       "      <td>-6.067575e+00</td>\n",
       "      <td>-5.001888e-01</td>\n",
       "      <td>-4.999813e-01</td>\n",
       "      <td>2.496066e-01</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>-7.308889e-03</td>\n",
       "      <td>5.082629e-04</td>\n",
       "      <td>-3.691050e-04</td>\n",
       "      <td>1.897821e-04</td>\n",
       "      <td>5.000599e-01</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>6.050669e+00</td>\n",
       "      <td>6.057551e+00</td>\n",
       "      <td>5.000351e-01</td>\n",
       "      <td>4.998886e-01</td>\n",
       "      <td>7.496616e-01</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1.499931e+01</td>\n",
       "      <td>1.499919e+01</td>\n",
       "      <td>9.999978e-01</td>\n",
       "      <td>9.999993e-01</td>\n",
       "      <td>9.999992e-01</td>\n",
       "      <td>1.000000e+00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  x             y             L             M             N  \\\n",
       "count  3.000000e+06  3.000000e+06  3.000000e+06  3.000000e+06  3.000000e+06   \n",
       "mean  -3.901070e-03 -1.086166e-03 -3.628822e-05  1.074950e-04  4.999451e-01   \n",
       "std    7.498685e+00  7.501070e+00  5.774254e-01  5.773347e-01  2.886514e-01   \n",
       "min   -1.499983e+01 -1.499879e+01 -9.999989e-01 -9.999988e-01  1.148959e-07   \n",
       "25%   -6.058138e+00 -6.067575e+00 -5.001888e-01 -4.999813e-01  2.496066e-01   \n",
       "50%   -7.308889e-03  5.082629e-04 -3.691050e-04  1.897821e-04  5.000599e-01   \n",
       "75%    6.050669e+00  6.057551e+00  5.000351e-01  4.998886e-01  7.496616e-01   \n",
       "max    1.499931e+01  1.499919e+01  9.999978e-01  9.999993e-01  9.999992e-01   \n",
       "\n",
       "            success  \n",
       "count  3.000000e+06  \n",
       "mean   3.922933e-02  \n",
       "std    1.941402e-01  \n",
       "min    0.000000e+00  \n",
       "25%    0.000000e+00  \n",
       "50%    0.000000e+00  \n",
       "75%    0.000000e+00  \n",
       "max    1.000000e+00  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We compute the correlation between variables and plot a heat map. This shows that the most critical parameter is the ray N direction cosine. This is logical, as rays pointing along the optical axis are intituitively more likely to trace successfully through the system. Rays that point away from the optical axis, and therefore have a small N direction cosine, are unlikely to trace through the system."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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9dVXJUlPP/20MjMzlZycbMuiVq5cudhj/vDDD+revbvq1q2r559/XidPntTkyZPVoUMHrV+/XlFRUXbxt912m6Kjo5WQkKD169dr2rRpql69utPZ5d69e+v+++/X3LlzNXjwYEmns/sxMTG69NJLz4v/66+/NH/+fPXp00fR0dE6dOiQpk6dqs6dO+vPP/9UzZo11bhxY40ZM0bPPfec7r33XnXq1EmS7Po7LS1N3bt31x133KG77rpLYWFhRdbv9ddf17JlyzRgwACtXLlSnp6emjp1qhYvXqwPP/xQNWvWLPbcDMPQTTfdpB9//FFDhgxRq1at9P333+uxxx7T/v37NXHiRFWrVk0ffvihXnzxRR0/ftw2Tadx48ZOtd+5PD091bdvXz377LNasWKFbrzxRknS22+/raZNm+qmm25SpUqV9M0332jYsGEqLCzUgw8+KEmaNGmSHnroIVWuXFlPP/20JNnaxZl2L853332nU6dO6e6773bqHDZv3qxOnTopICBAjz/+uLy8vDR16lRdddVV+umnn9S2bdsytU1REhIS5OvrqyeffFI7d+7U5MmT5eXlJQ8PD6Wnp+v555/XqlWrNHPmTEVHR+u5556z23/FihWaO3euhg0bpipVquiNN97QLbfcor1796pq1aqSpPvvv19ffPGFhg8friZNmigtLU0rVqzQli1bivyOA0CpVfRfHICryczMNCQZN998s1PxiYmJhiRj6NChduWPPvqoIclYtmyZreyfDOmiRYvsYv/JJtatW9fIzs62lRcWFhoNGjQwunXrZsv4GoZhZGdnG9HR0XYZ0aIy/Gcf6x/33Xef4efnZ5eNvPHGG21Z/bMVleFv1aqVUb16dSMtLc1W9vvvvxseHh5G//79bWX/ZPgHDx5sd8z//e9/RtWqVc/7rHP9k+E3DMO49dZbjWuuucYwDMMoKCgwwsPDjdGjR9vqd3aGPycnxygoKDjvPKxWqzFmzBhb2W+//VbkrxeGceZXj3feeafI987OBBuGYXz//feGJGPs2LHGX3/9ZVSuXNno1atXiec4f/58235nu/XWWw2LxWLs3LnT7nOLy9oXVUdHsfPmzTMkGa+//rqtrKjvSrdu3Yy6devalTVt2vS88zcM59u9KKNGjTIkGRs2bHAY949evXoZ3t7exq5du2xlBw4cMKpUqWJceeWV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SbsO0ToAAACAiZHhBwAAgFszyPA7ROsAAAAAJkaGHwAAAO6N23I6RIYfAAAAMDEG/AAAAICJMaUHAAAAbo1Fu47ROgAAAMBF9NZbbykqKko+Pj5q27at1qxZ4zA+IyNDDz74oGrUqCGr1aqGDRtq4cKFTn8eGX4AAAC4NzdatDtnzhzFxsbqnXfeUdu2bTVp0iR169ZN27ZtU/Xq1c+Lz8vL07XXXqvq1avriy++UK1atbRnzx4FBQU5/ZkM+AEAAICLZMKECbrnnns0aNAgSdI777yjBQsWaPr06XryySfPi58+fbqOHj2qX3/9VV5eXpKkqKioUn0mU3oAAACAMsrNzVVWVpbdlpubW2RsXl6e1q1bp65du9rKPDw81LVrV61cubLIfb7++mu1b99eDz74oMLCwtSsWTO99NJLKigocLqODPgBAADg3iweFbYlJCQoMDDQbktISCiymqmpqSooKFBYWJhdeVhYmFJSUorc56+//tIXX3yhgoICLVy4UM8++6xee+01jR071unmYUoPAAAAUEZxcXGKjY21K7NareV2/MLCQlWvXl3vvvuuPD091bp1a+3fv1+vvvqq4uPjnToGA34AAAC4NaMCF+1arVanB/ihoaHy9PTUoUOH7MoPHTqk8PDwIvepUaOGvLy85OnpaStr3LixUlJSlJeXJ29v7xI/lyk9AAAAwEXg7e2t1q1ba+nSpbaywsJCLV26VO3bty9ynw4dOmjnzp0qLCy0lW3fvl01atRwarAvMeAHAAAALprY2Fi99957mjVrlrZs2aIHHnhAJ06csN21p3///oqLi7PFP/DAAzp69Kgefvhhbd++XQsWLNBLL72kBx980OnPZEqPk4bcGaWe14Wrin8lbdySpfFTdij54EmH+/S+oab69o5QSLC3diUd18SpO7VlxzHb+95eFg0fUk/XdKouLy8PrdlwVK+9vUPpGfkX+nRMh/5xLSEdL1PdR4Yo8NJm8qlZXWtvGaZDXy91vM+VbdRk/JOq3KSBcvYd1M6Et5X8wTy7mMgH+qlu7BBZw6sp64+t2jzyBWX+tvFCnopplfT9P1eXDqEaele0wqv7KPlAtt6emaRV647axZTlOkTx+HfNNXHtuCg3etLu7bffriNHjui5555TSkqKWrVqpUWLFtkW8u7du1ceHmfOJyIiQt9//71GjRqlFi1a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w4YN05VXXmlXP+BcDPjLUV5enu666y7dfvvteuGFFzR06FAdPny4oquFvw0dOtSWpezatasiIiIqukqAW7j++uuVl5en/Px8devWraKrgyK8/PLL+uabb7Ry5cqKropbsVgs6tChg0aPHq0NGzbI29tb8+bNU7Vq1XTw4EFbXEFBgTZt2mR73bx5cxUWFuqnn34q8rgtWrTQL7/8UuQgPCwsTDVr1tRff/2l+vXr223R0dG2uICAAN1+++167733NGfOHH355Zc6evSopNN/UPTs2VNvvPGGli9frpUrV2rjxo3l1SwwIebwl6Onn35amZmZeuONN1S5cmUtXLhQgwcP1rffflvRVYOkfv366dFHH9V7772nDz74oKKrg3NkZmYqMTHRrqxq1ar8YeYCPD09bdNFPD09K7g2KErz5s1155136o033qjoqriN1atXa+nSpbruuutUvXp1rV69WkeOHFHjxo3l7++v2NhYLViwQPXq1dOECROUkZFh2zcqKkoDBgzQ4MGD9cYbb6hly5bas2ePDh8+rNtuu03Dhw/X5MmTdccddyguLk6BgYFatWqV2rRpo0aNGmn06NEaMWKEAgMDdf311ys3N1dr165Venq6YmNjNWHCBNWoUUOXXHKJPDw89Pnnnys8PFxBQUGaOXOmCgoK1LZtW/n5+emjjz6Sr6+v3Tx/4FwM+MvJ8uXLNWnSJP34448KCAiQJH344Ydq2bKl3n77bT3wwAMVXEMEBgbqlltu0YIFC3jIkwtavnz5ebd6HDJkiKZNm1ZBNcLZ/vl3Da5rzJgxmjNnTkVXw20EBATo559/1qRJk5SVlaXIyEi99tpr6t69u/Lz8/X777+rf//+qlSpkkaNGqUuXbrY7f/222/rqaee0rBhw5SWlqY6deroqaeeknQ6WbFs2TI99thj6ty5szw9PdWqVSt16NBB0ulfnP38/PTqq6/qsccek7+/v5o3b267FWiVKlX0yiuvaMeOHfL09NTll1+uhQsXysPDQ0FBQXr55ZcVGxurgoICNW/eXN98842qVq16UdsP7sViOHv/KcAErrnmGjVt2pQsGAAA+M9gwI//hPT0dC1fvly33nqr/vzzTzVq1KiiqwQAAHBRMKUH/wmXXHKJ0tPTNW7cOAb7AADgP4UMPwAAAGBi3JYTAAAAMDEG/AAAAICJMeAHAAAATIwBPwAAAGBiDPgBAAAAE2PADwAAAJgYA34AAADAxBjwAwAAACbGgB8AAAAwsf8HrTSaA9F4lAcAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1000x800 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Calculate the correlation matrix\n",
    "correlation_matrix = data.corr()\n",
    "\n",
    "# Create a heatmap using seaborn\n",
    "plt.figure(figsize=(10, 8))\n",
    "sns.heatmap(correlation_matrix, annot=True, cmap=\"coolwarm\", fmt=\".2f\")\n",
    "plt.title(\"Correlation Matrix of Data Columns\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 4: Model Building\n",
    "\n",
    "In this step, we will build a logistic regression model to predict whether a ray will successfully trace through the Cooke triplet lens system. The process involves the following steps:\n",
    "\n",
    "1. **Data Preparation**: Split the dataset into training and testing sets, and handle class imbalance using SMOTE (Synthetic Minority Oversampling Technique).\n",
    "2. **Feature Scaling**: Standardize the features to ensure that they have a mean of 0 and a standard deviation of 1.\n",
    "3. **Model Training**: Train a logistic regression model using the prepared training data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = data.drop(columns=[\"success\"])\n",
    "y = data[\"success\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Split dataset into train and test sets\n",
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    X,\n",
    "    y,\n",
    "    test_size=0.2,\n",
    "    random_state=42,\n",
    "    stratify=y,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, we use SMOTE (Synthetic Minority Oversampling Technique) to handle our imbalanced dataset.\n",
    "\n",
    "SMOTE is used to address the issue of imbalanced datasets, where certain classes are underrepresented, such as in our dataset. This imbalance can lead to biased models that perform poorly on the minority class. For example, in a significantly imbalanced dataset, a model that always predicts the majority class would show reasonable results, on average. We want to avoid this behavior.\n",
    "\n",
    "SMOTE works by generating synthetic samples for the minority class by interpolating between existing minority class samples. This helps to balance the class distribution and improve the model's performance on the minority class."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "smote = SMOTE(random_state=42)\n",
    "X_train, y_train = smote.fit_resample(X_train, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Standardize the features. Note that we fit the standard scaler on the training data and then apply the same transformation to the test data. This avoids data leakage."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "scaler = StandardScaler()\n",
    "X_train = scaler.fit_transform(X_train)\n",
    "X_test = scaler.transform(X_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, we train the logistic regression model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LogisticRegression(class_weight=&#x27;balanced&#x27;, max_iter=1000, random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;LogisticRegression<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.5/modules/generated/sklearn.linear_model.LogisticRegression.html\">?<span>Documentation for LogisticRegression</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>LogisticRegression(class_weight=&#x27;balanced&#x27;, max_iter=1000, random_state=42)</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "LogisticRegression(class_weight='balanced', max_iter=1000, random_state=42)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Train a logistic regression model\n",
    "model = LogisticRegression(\n",
    "    random_state=42,\n",
    "    max_iter=1000,\n",
    "    class_weight=\"balanced\",\n",
    ")  # Add class_weight='balanced' if not using SMOTE\n",
    "model.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 5: Model Performance Assessment\n",
    "\n",
    "In this step, we will evaluate the performance of our logistic regression model using various metrics and visualizations. The following aspects will be covered:\n",
    "\n",
    "1. **Classification Report**: This report provides key metrics such as precision, recall, F1-score, and support for each class.\n",
    "2. **Confusion Matrix**: A confusion matrix will be displayed to show the number of true positives, true negatives, false positives, and false negatives.\n",
    "3. **Accuracy**: The overall accuracy of the model will be calculated.\n",
    "4. **F1 Score**: The F1 score, which is the harmonic mean of precision and recall, will be computed.\n",
    "5. **ROC AUC Score**: The Area Under the Receiver Operating Characteristic Curve (ROC AUC) will be calculated to evaluate the model's ability to distinguish between classes.\n",
    "6. **ROC Curve**: The ROC curve will be plotted to visualize the trade-off between the true positive rate and false positive rate.\n",
    "7. **Precision-Recall Curve**: The precision-recall curve will be plotted to visualize the trade-off between precision and recall."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, we make predictions using the test dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Predictions\n",
    "y_pred = model.predict(X_test)\n",
    "y_pred_proba = model.predict_proba(X_test)[\n",
    "    :,\n",
    "    1,\n",
    "]  # Probabilities for the positive class (1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We then generate a classification report, which gives an overview of the model performance on the test data. We can see that the performance is worse for the \"1\" class i.e., predicting when a ray is successful. In general, recall for both classes is 0.9 or more."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification Report:\n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      0.90      0.95    576462\n",
      "           1       0.29      0.98      0.45     23538\n",
      "\n",
      "    accuracy                           0.90    600000\n",
      "   macro avg       0.64      0.94      0.70    600000\n",
      "weighted avg       0.97      0.90      0.93    600000\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(\"Classification Report:\\n\", classification_report(y_test, y_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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/vrrpR6giIiIyPVW4oTo1VdfZf78+Xz44YeUL//HhoL33HMP27ZtK9XgREREXF3BpGp7DylciecQxcfH065duyvO+/v7k5KSUhoxiYiISAHtVO0QJa4QBQYGcujQoSvOb9y4kXr16pVKUCIiIvI7zSFyiBInRM888wwvvPACP/30EyaTiaSkJD777DNGjhzJkCFDrkeMIiIiItdViYfMxo4di8Vi4b777uPixYu0a9cOT09PRo4cybBhw65HjCIiIi5LGzM6RokTIpPJxPjx4xk1ahSHDh0iPT2d0NBQfH19r0d8IiIirk37EDnEX96Y0cPDg9DQ0NKMRURERKRMlDgh6tixIybTtWerr1mzxq6ARERE5DKlsWxeFaIilTghat68uc3rnJwc4uLi2L17NxEREaUVl4iIiICGzBykxAnRzJkzr3p+8uTJpKen2x2QiIiIiKOV2tPun3rqKT766KPS6k5ERERA+xA5SKk97X7Lli14eXmVVnciIiKClt07SokToh49eti8NgyDkydPsnXrViZMmFBqgYmIiIg4SokTIn9/f5vXbm5uNGjQgKlTp9K5c+dSC0xERETEUUqUEOXl5dG/f3+aNGlCpUqVrldMIiIiUkCrzByiRJOq3d3d6dy5s55qLyIi4iAFc4jsPaRwJV5ldvvtt3PkyJHrEYuIiIhImShxQvTqq68ycuRIli1bxsmTJ0lLS7M5REREpJRpyf11V+w5RFOnTuXFF1/kwQcfBODhhx+2eYSHYRiYTCby8vJKP0oRERFXpTlEDlHshGjKlCkMHjyYH3744XrGIyIiIuJwxU6IDCM/vWzfvv11C0ZERERsaWNGxyjRsvvCnnIvIiIi14GGzByiRAlR/fr1i0yKzp07Z1dAIiIiIo5WooRoypQpV+xULSIiItePhswco0QJUe/evalevfr1ikVERET+TENmDlHsfYg0f0hERERuViVeZSYiIiIOpAqRQxQ7IbJYLNczDhEREbkKzSFyjBLNIRIREREHU4XIIUr8LDMRERGRm40SIhEREWdm74NdS1hhmjZtGnfeeSd+fn5Ur16dRx55hPj4eJs2mZmZREZGUqVKFXx9fenZsyenTp2yaZOYmEjXrl2pUKEC1atXZ9SoUeTm5tq0Wbt2LS1atMDT05OQkBCio6OviGfu3LnUqVMHLy8vWrduzc8//1zi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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cm = confusion_matrix(y_test, y_pred)\n",
    "\n",
    "disp = ConfusionMatrixDisplay(\n",
    "    confusion_matrix=cm,\n",
    "    display_labels=[\"Failure\", \"Success\"],\n",
    ")\n",
    "disp.plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute a few useful metrics."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.9042\n",
      "F1 Score: 0.4451\n",
      "ROC AUC: 0.9641\n"
     ]
    }
   ],
   "source": [
    "print(f\"Accuracy: {accuracy_score(y_test, y_pred):.4f}\")\n",
    "print(f\"F1 Score: {f1_score(y_test, y_pred):.4f}\")\n",
    "print(f\"ROC AUC: {roc_auc_score(y_test, y_pred_proba):.4f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The Receiver Operating Characteristic (ROC) curve is a graphical representation of a classification model's performance. It plots the True Positive Rate (TPR) against the False Positive Rate (FPR) at various threshold settings. The TPR is also known as sensitivity or recall, while the FPR is the proportion of actual negatives that are incorrectly identified as positives.\n",
    "\n",
    "Key points about the ROC curve:\n",
    "\n",
    "- **True Positive Rate (TPR)**: The proportion of actual positives correctly identified by the model. It is calculated as TPR = TP / (TP + FN), where TP is True Positives and FN is False Negatives.\n",
    "- **False Positive Rate (FPR)**: The proportion of actual negatives incorrectly identified as positives. It is calculated as FPR = FP / (FP + TN), where FP is False Positives and TN is True Negatives.\n",
    "- **Area Under the Curve (AUC)**: The AUC represents the degree of separability achieved by the model. A higher AUC indicates a better performing model. An AUC of 1.0 represents a perfect model, while an AUC of 0.5 represents a model with no discriminative power, equivalent to random guessing.\n",
    "\n",
    "In the ROC curve plot, the diagonal line represents the performance of a random classifier. The closer the ROC curve is to the top-left corner, the better the model's performance. The ROC curve helps in selecting the optimal threshold for classification by balancing the trade-off between TPR and FPR."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fpr, tpr, thresholds = roc_curve(y_test, y_pred_proba)\n",
    "plt.figure(figsize=(8, 6))\n",
    "plt.plot(fpr, tpr, label=f\"ROC Curve (AUC = {roc_auc_score(y_test, y_pred_proba):.4f})\")\n",
    "plt.plot([0, 1], [0, 1], linestyle=\"--\", color=\"gray\")\n",
    "plt.xlabel(\"False Positive Rate\")\n",
    "plt.ylabel(\"True Positive Rate\")\n",
    "plt.title(\"Receiver Operating Characteristic (ROC) Curve\")\n",
    "plt.legend()\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Generate and plot the Precision-Recall Curve for the given true labels and predicted probabilities.\n",
    "\n",
    "The Precision-Recall Curve is a graphical representation used to evaluate the performance of a binary classifier. \n",
    "It plots Precision (the ratio of true positive predictions to the total number of positive predictions) against Recall \n",
    "(the ratio of true positive predictions to the total number of actual positives) at various threshold settings. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArMAAAIjCAYAAAAQgZNYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAABgIElEQVR4nO3deVxU9f7H8fcMOwKisqoo7uaS5nrNTFMEl7zXrpU3zdTUFvVmUlaWiWa5lJktmm1qt1+lZZslrqSVZaWmlvuuuIC4giIwMOf3hzFJLAICw9HX8/Hw8XC+53vO+Zz5Mvnu8J3vsRiGYQgAAAAwIauzCwAAAACKizALAAAA0yLMAgAAwLQIswAAADAtwiwAAABMizALAAAA0yLMAgAAwLQIswAAADAtwiwAAABMizAL4LoxaNAghYeHF2mfNWvWyGKxaM2aNaVSk9l16tRJnTp1crw+ePCgLBaL5s+f77SaAFxfCLMASs38+fNlsVgcfzw9PVW/fn2NHDlSiYmJzi6v3MsOhtl/rFarKleurO7du2vdunXOLq9EJCYm6vHHH1fDhg3l7e2tChUqqGXLlnr++ed19uxZZ5cHwARcnV0AgGvfc889p1q1aiktLU1r167Vm2++qdjYWG3dulXe3t5lVsc777wju91epH1uvfVWXbx4Ue7u7qVU1ZXdc8896tGjh7KysrR7927Nnj1bt912m9avX6+mTZs6ra6rtX79evXo0UPnz5/Xvffeq5YtW0qSNmzYoKlTp+r777/XihUrnFwlgPKOMAug1HXv3l2tWrWSJA0dOlRVqlTRjBkz9NVXX+mee+7Jc58LFy6oQoUKJVqHm5tbkfexWq3y9PQs0TqKqkWLFrr33nsdrzt06KDu3bvrzTff1OzZs51YWfGdPXtWd9xxh1xcXLRp0yY1bNgwx/YXXnhB77zzTomcqzR+lgCUH0wzAFDmOnfuLEk6cOCApEtzWX18fLRv3z716NFDvr6+6t+/vyTJbrdr5syZaty4sTw9PRUcHKwHH3xQZ86cyXXcpUuXqmPHjvL19ZWfn59at26tjz76yLE9rzmzCxYsUMuWLR37NG3aVK+++qpje35zZj/99FO1bNlSXl5eCggI0L333qujR4/m6JN9XUePHlXv3r3l4+OjwMBAPf7448rKyir2+9ehQwdJ0r59+3K0nz17Vo8++qjCwsLk4eGhunXratq0abnuRtvtdr366qtq2rSpPD09FRgYqG7dumnDhg2OPvPmzVPnzp0VFBQkDw8PNWrUSG+++Waxa/67t956S0ePHtWMGTNyBVlJCg4O1rhx4xyvLRaLJkyYkKtfeHi4Bg0a5HidPbXlu+++0/DhwxUUFKTq1atr0aJFjva8arFYLNq6daujbefOnbrzzjtVuXJleXp6qlWrVlq8ePHVXTSAUsGdWQBlLjuEValSxdGWmZmpqKgo3XLLLZo+fbpj+sGDDz6o+fPna/DgwXrkkUd04MABvfHGG9q0aZN+/PFHx93W+fPn6/7771fjxo01duxY+fv7a9OmTVq2bJn69euXZx0rV67UPffcoy5dumjatGmSpB07dujHH3/UqFGj8q0/u57WrVtrypQpSkxM1Kuvvqoff/xRmzZtkr+/v6NvVlaWoqKi1LZtW02fPl2rVq3Syy+/rDp16ujhhx8u1vt38OBBSVKlSpUcbampqerYsaOOHj2qBx98UDVq1NBPP/2ksWPH6vjx45o5c6aj75AhQzR//nx1795dQ4cOVWZmpn744Qf9/PPPjjvob775pho3bqx//vOfcnV11ddff63hw4fLbrdrxIgRxar7cosXL5aXl5fuvPPOqz5WXoYPH67AwECNHz9eFy5cUM+ePeXj46NPPvlEHTt2zNF34cKFaty4sZo0aSJJ2rZtm9q3b69q1arpqaeeUoUKFfTJJ5+od+/e+uyzz3THHXeUSs0AiskAgFIyb948Q5KxatUqIykpyYiPjzcWLFhgVKlSxfDy8jKOHDliGIZhDBw40JBkPPXUUzn2/+GHHwxJxocffpijfdmyZTnaz549a/j6+hpt27Y1Ll68mKOv3W53/H3gwIFGzZo1Ha9HjRpl+Pn5GZmZmflew+rVqw1JxurVqw3DMIyMjAwjKCjIaNKkSY5zffPNN4YkY/z48TnOJ8l47rnnchzzpptuMlq2bJnvObMdOHDAkGRMnDjRSEpKMhISEowffvjBaN26tSHJ+PTTTx19J02aZFSoUMHYvXt3jmM89dRThouLi3H48GHDMAzj22+/NSQZjzzySK7zXf5epaam5toeFRVl1K5dO0dbx44djY4dO+aqed68eQVeW6VKlYxmzZoV2OdykoyYmJhc7TVr1jQGDhzoeJ39M3fLLbfkGtd77rnHCAoKytF+/Phxw2q15hijLl26GE2bNjXS0tIcbXa73bj55puNevXqFbpmAGWDaQYASl1ERIQCAwMVFham//znP/Lx8dEXX3yhatWq5ej39zuVn376qSpWrKiuXbvq5MmTjj8tW7aUj4+PVq9eLenSHdaUlBQ99dRTuea3WiyWfOvy9/fXhQsXtHLlykJfy4YNG3TixAkNHz48x7l69uyphg0basmSJbn2eeihh3K87tChg/bv31/oc8bExCgwMFAhISHq0KGDduzYoZdffjnHXc1PP/1UHTp0UKVKlXK8VxEREcrKytL3338vSfrss89ksVgUExOT6zyXv1deXl6Ov587d04nT55Ux44dtX//fp07d67QtecnOTlZvr6+V32c/AwbNkwuLi452vr27asTJ07kmDKyaNEi2e129e3bV5J0+vRpffvtt7r77ruVkpLieB9PnTqlqKgo7dmzJ9d0EgDOxTQDAKVu1qxZql+/vlxdXRUcHKwGDRrIas35/9Kurq6qXr16jrY9e/bo3LlzCgoKyvO4J06ckPTXtIXsXxMX1vDhw/XJJ5+oe/fuqlatmiIjI3X33XerW7du+e5z6NAhSVKDBg1ybWvYsKHWrl2boy17TurlKlWqlGPOb1JSUo45tD4+PvLx8XG8fuCBB3TXXXcpLS1N3377rV577bVcc2737Nmj33//Pde5sl3+XlWtWlWVK1fO9xol6ccff1RMTIzWrVun1NTUHNvOnTunihUrFrj/lfj5+SklJeWqjlGQWrVq5Wrr1q2bKlasqIULF6pLly6SLk0xaN68uerXry9J2rt3rwzD0LPPPqtnn302z2OfOHEi1/+IAXAewiyAUtemTRvHXMz8eHh45Aq4drtdQUFB+vDDD/PcJ7/gVlhBQUHavHmzli9frqVLl2rp0qWaN2+e7rvvPr3//vtXdexsf787mJfWrVs7QrJ06U7s5V92qlevniIiIiRJt99+u1xcXPTUU0/ptttuc7yvdrtdXbt21RNPPJHnObLDWmHs27dPXbp0UcOGDTVjxgyFhYXJ3d1dsbGxeuWVV4q8vFleGjZsqM2bNysjI+Oqlj3L74t0l99Zzubh4aHevXvriy++0OzZs5WYmKgff/xRkydPdvTJvrbHH39cUVFReR67bt26xa4XQMkjzAIot+rUqaNVq1apffv2eYaTy/tJ0tatW4sc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",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "precision, recall, thresholds_pr = precision_recall_curve(y_test, y_pred_proba)\n",
    "plt.figure(figsize=(8, 6))\n",
    "plt.plot(recall, precision, label=\"Precision-Recall Curve\")\n",
    "plt.xlabel(\"Recall\")\n",
    "plt.ylabel(\"Precision\")\n",
    "plt.title(\"Precision-Recall Curve\")\n",
    "plt.legend()\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Conclusions\n",
    "\n",
    "In this notebook, we built a logistic regression model to predict whether a ray will trace successfully through a Cooke triplet lens system. Here are the key takeaways:\n",
    "\n",
    "1. **Data Generation**: We generated 3 million random rays and traced them through the Cooke triplet lens system. The dataset was highly imbalanced, with only a small fraction of rays tracing successfully.\n",
    "\n",
    "2. **Exploratory Data Analysis (EDA)**: Through EDA, we identified that the most critical parameter for successful ray tracing was the N direction cosine. This insight aligns with the intuition that rays pointing along the optical axis are more likely to trace successfully.\n",
    "\n",
    "3. **Model Building**: We addressed the class imbalance using SMOTE and standardized the features before training the logistic regression model. The model was trained with a balanced class weight to further mitigate the imbalance issue.\n",
    "\n",
    "4. **Model Performance**: The logistic regression model achieved high recall for both classes, indicating its effectiveness in identifying successful and unsuccessful rays. The ROC AUC score and precision-recall curve further demonstrated the model's ability to distinguish between the two classes.\n",
    "\n",
    "5. **Visualization**: Various plots, including the correlation matrix, ROC curve, and precision-recall curve, provided insights into the model's performance and the relationships between features.\n",
    "\n",
    "Overall, the logistic regression model performed well in predicting ray tracing success, and the methodology used in this notebook can be applied to similar optical systems and classification problems."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
